#include "led_demo.h"

// 延时函数(10微秒级)
void Delay10us(unsigned int t)
{
    while(t--){
        _nop_();
        _nop_();
        _nop_();
        _nop_();
    }
}

// 延时函数(毫秒级)
void DelayMs(unsigned int ms)
{
    unsigned int i, j;
    for(i = 0; i < ms; i++)
        for(j = 0; j < 110; j++);
}

// 跑马灯功能函数
void RunLeds(void)
{
    unsigned char LED = 0x01; // 初始状态，第一个LED点亮
    
    while(1) // 无限循环
    {
        LED_PORT = ~LED; // 将LED状态取反后输出到LED_PORT口
        DelayMs(200); // 延时200毫秒
        
        // 左移操作，实现跑马灯效果
        LED = LED << 1;
        
        // 如果所有LED都灭了（超出端口范围），重新开始
        if(LED == 0x00)
        {
            LED = 0x01;
        }
    }
}